//package com.xls.commonlibrary.ad.adn.tx.banner;
//
//import android.graphics.Point;
//import android.text.TextUtils;
//import android.util.Log;
//import android.view.Gravity;
//import android.webkit.ValueCallback;
//import android.widget.CheckBox;
//import android.widget.EditText;
//import android.widget.FrameLayout;
//
//import androidx.appcompat.app.AppCompatActivity;
//import androidx.lifecycle.DefaultLifecycleObserver;
//import androidx.lifecycle.LifecycleOwner;
//
//import com.orhanobut.logger.Logger;
//import com.qq.e.ads.banner2.UnifiedBannerADListener;
//import com.qq.e.ads.banner2.UnifiedBannerView;
//import com.qq.e.ads.splash.SplashAD;
//import com.qq.e.comm.listeners.NegativeFeedbackListener;
//import com.qq.e.comm.util.AdError;
//import com.xls.commonlibrary.ad.adn.tx.splash.DemoBiddingC2SUtils;
//import com.xls.commonlibrary.ad.adn.tx.splash.DemoUtil;
//import com.xls.commonlibrary.ad.adn.tx.util.DownloadConfirmHelper;
//
//import io.reactivex.rxjava3.annotations.NonNull;
//
//// 腾讯banner广告    横幅广告
//public class TxBannerUtil {
//
////    推荐您将 Banner 的宽高比固定为 6.4:1 以获得最佳的广告展示效果
////    Banner 给开发者的回调（UnifiedBannerADListener）全部执行在主线程中（异步回调）
//
//
////    private String posId = "9079537218417626401"; //  demo id
//
//    //    private String posId = "5076383894749741"; // 正式 id
//    private String posId = "4066798213319038"; // 正式 id
//
//
//    int heightOfBannerDP = 80;// banner's高度 单位：dp
//
//    private String TAG = "TxUtil";
//
//    private static volatile TxBannerUtil singleton = null;
//
//    private TxBannerUtil() {
//    }
//
//    public static TxBannerUtil getInstance() {
//        if (singleton == null) {
//            synchronized (TxBannerUtil.class) {
//                if (singleton == null) {
//                    singleton = new TxBannerUtil();
//                }
//            }
//        }
//        return singleton;
//    }
//
//    private FrameLayout mBannerContainer; // banner广告容器view
//    AppCompatActivity activity;
//    ValueCallback<Boolean> valueCallback;
//
//    public void loadBanner(@NonNull AppCompatActivity activity,
//                           @NonNull FrameLayout container,
//                           @NonNull ValueCallback<Boolean> valueCallback
//    ) {
//
//        this.activity = activity;
//        this.valueCallback = valueCallback;
//        this.mBannerContainer = container;
//
//        addLifecycle();
//        initListeners();
//
//
//        loadAd();
//
//    }
//
//    private void callbackSuccess() {
//        if (this.valueCallback == null) return;
//        this.valueCallback.onReceiveValue(true);
//    }
//
//    private void callbackFail() {
//        if (this.valueCallback == null) return;
//        this.valueCallback.onReceiveValue(false);
//    }
//
//
//    private void addLifecycle() {// 重要
//        if (this.activity == null) return;
//
//        this.activity.getLifecycle().addObserver(new DefaultLifecycleObserver() {
//            // 还有很多生命周期都可以感知
//            // 这里只关注 onDestroy()的注销ad对象
//            @Override
//            public void onDestroy(LifecycleOwner owner) {
//                DefaultLifecycleObserver.super.onDestroy(owner);
////                Logger.d("===========LifecycleOwner=========onDestroy===========");
//
//
//                /** 6、在onDestroy中销毁广告 */
//                if (mBannerView != null) {
//                    mBannerView.destroy();
//                }
//
//
//            }
//        });
//    }
//
//
//    /////////////////////////////////   以下SDK代码   ////////////////////////////////////////////
//
//
//    UnifiedBannerADListener bannerADListener;
//    UnifiedBannerView mBannerView;
//
//
//    private void loadAd() {
//        if (this.mBannerView != null) {
//            mBannerView.destroy();
//        }
//
//        mBannerView = new UnifiedBannerView(this.activity, posId, bannerADListener);
//        mBannerView.setLoadAdParams(DemoUtil.getLoadAdParams("banner"));
//        mBannerView.setNegativeFeedbackListener(new NegativeFeedbackListener() {
//            @Override
//            public void onComplainSuccess() {
//                Log.d(TAG, "onComplainSuccess  NegativeFeedback");
//            }
//        });
//
//
//        mBannerContainer.removeAllViews();
//        // mBannerContainer.addView(mBannerView, new FrameLayout.LayoutParams(l, w));
//        mBannerContainer.addView(mBannerView, getUnifiedBannerLayoutParams());
//
//
//        mBannerView.loadAD();
//
//    }
//
//    private int dp2px(int dpValue) {
//        return (int) this.activity.getResources().getDisplayMetrics().density * dpValue;
//    }
//
//    private FrameLayout.LayoutParams getUnifiedBannerLayoutParams() {
//        //    推荐您将 Banner 的宽高比固定为 6.4:1 以获得最佳的广告展示效果
//        float scale = 6.4F;
//        Point screenSize = new Point();
//        this.activity.getWindowManager().getDefaultDisplay().getSize(screenSize);
////        return new FrameLayout.LayoutParams(screenSize.x, Math.round(screenSize.x / scale));
//
//        // 169
//        // 319
//        // int h = Math.round(screenSize.x / scale * 3 / 2);
//
//        // dp 适配各种手机的高度
//        int h = dp2px(heightOfBannerDP);
//        Logger.d("============getUnifiedBannerLayoutParams================h:" + h);
//        return new FrameLayout.LayoutParams(screenSize.x, h);
//    }
//
//    private void initListeners() {
//
//        bannerADListener = new UnifiedBannerADListener() {
//            @Override
//            public void onNoAD(AdError adError) {
//                Log.i(TAG, "banner adError:" + adError.getErrorCode() + adError.getErrorMsg());
//
//                callbackFail();
//            }
//
//            @Override
//            public void onADReceive() {
//                Log.i(TAG, "banner onADReceive");
//
//                if (DownloadConfirmHelper.USE_CUSTOM_DIALOG) {
//                    mBannerView.setDownloadConfirmListener(DownloadConfirmHelper.DOWNLOAD_CONFIRM_LISTENER);
//                }
//                reportBiddingResult(mBannerView);
//
//
//            }
//
//            @Override
//            public void onADExposure() {
//                Log.i(TAG, "banner onADExposure");
//            }
//
//            @Override
//            public void onADClosed() {
//                Log.i(TAG, "banner onADClosed");
//
//                callbackSuccess();
//            }
//
//            @Override
//            public void onADClicked() {
//                Log.i(TAG, "banner onADClicked");
//            }
//
//            @Override
//            public void onADLeftApplication() {
//                Log.i(TAG, "banner onADLeftApplication");
//            }
//        };
//
//
//    }
//
//    private void reportBiddingResult(UnifiedBannerView unifiedBannerView) {
//        DemoBiddingC2SUtils.reportBiddingWinLoss(unifiedBannerView);
//        if (DemoUtil.isNeedSetBidECPM()) {
//            unifiedBannerView.setBidECPM(300);
//        }
//    }
//
//
//}
